Display Prime Numbers Between Two Intervals in C Program

07-11-17 Course- C

Example to read how to print all prime numbers between two numbers (entered by the user). This problem is solved using nested for loop and if...else statement.

Example N. 1: Display Prime Numbers Between two Intervals


#include <stdio.h>
int main()
{
    int n1, n2, i, flag;
    printf("Enter two numbers(intevals): ");
    scanf("%d %d", &n1, &n2);

    printf("Prime numbers between %d and %d are: ", n1, n2);

    while (n1 < n2)
    {
        flag=0;

        for(i=2; i<=n1/2; ++i)
        {
            if(n1%i == 0)
            {
                flag=1;
                break;
            }
        }

        if (flag == 0)
            printf("%d ",n1);

        ++n1;
    }

    return 0;
} 

Output

v
Enter two numbers(intervals): 20 50 Prime numbers between 20 and 50 are: 23 29 31 37 41 43 47 

In this program, the while loop is iterated (n2 - n1 - 1) times.

In each iteration, whether n1 is a prime number or not is checked and the value of n1 is incremented by 1 until n1 is equal to n2.

If the user enters larger number first, this program doesn't work as intended. You can solve this issue by swapping the numbers if the user enters larger number first.

Example N. 2: Display Prime Numbers Between two Intervals When Larger Number is Entered first


#include <stdio.h>
int main()
{
    int n1, n2, i, flag, temp;
    printf("Enter two numbers(intevals): ");
    scanf("%d %d", &n1, &n2);

    //swapping numbers if n1 is greater than n2
    if (n1 > n2) {
        temp = n1;
        n1 = n2;
        n2 = temp;
    }

    printf("Prime numbers between %d and %d are: ", n1, n2);

    while (n1 < n2)
    {
        flag=0;

        for(i=2; i<=n1/2; ++i)
        {
            if(n1%i == 0)
            {
                flag=1;
                break;
            }
        }

        if (flag == 0)
            printf("%d ",n1);

        ++n1;
    }

    return 0;
}